package com.system.blogAdmin.auth.dao;

import com.cnc.common.persistence.dao.BaseDao;
import com.system.blogAdmin.auth.entity.AuthResource;
import com.system.blogAdmin.auth.entity.AuthRole;
import com.system.blogAdmin.auth.entity.User;
import com.system.blogAdmin.auth.entity.AuthResource;
import com.system.blogAdmin.auth.entity.AuthRole;
import com.system.blogAdmin.auth.entity.User;

import java.util.List;

/**
 * @描述：AuthRoleDao接口
 * @作者:  Auto Code
 * @创建时间:  2017-5-22 17:49:23
 * @版本: 1.0
 */
public interface AuthRoleDao extends BaseDao<AuthRole> {
        /**
         * 列表查询所有角色
         * @return
         */
        List<AuthRole> listAuthRole();

        /**
         * 通过用户ID 获取 角色信息
         * @param userId 用户ID
         * @return
         */
        List<AuthRole> getAuthRoleByUserId(Long userId);

        /**
         * 通过角色名称 获取角色信息
         * @param name 角色名称
         * @return
         */
        List<AuthRole> listAuthRoleByName(String name);

        /**
         * 通过角色ID 获取用户列表
         * @param id
         * @return
         */
        List<User> listAuthUserByRoleId(long id);

        /**
         *通过角色ID 获取角色拥有资源
         * @param id
         * @return
         */
        List<AuthResource> listAuthResourceByRoleId(long id);

        /**
         * 删除角色权限
         * @param roleId 角色ID
         */
        void deletePermission(Integer roleId);
}
